package com.xuecheng.api.content;

import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseModel;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

@Api(value = "CourseBae api",tags = "课程基础信息api")
public interface CourseBaseApi {

    @ApiOperation("课程基础信息分页条件查询")
    PageVO<CourseBaseDTO> queryCourseList(PageRequestParams params, QueryCourseModel model);

    @ApiOperation("课程基础信息添加")
    CourseBaseDTO createCourse(CourseBaseVO vo);

    @ApiOperation("根据课程id查询课程基础信息数据")
    @ApiImplicitParam(name = "courseBaseId",value = "课程基础信息id值",required = true,dataType = "Long",paramType = "path")
    CourseBaseDTO getCourseById(Long courseBaseId);

    @ApiOperation("根据id修改课程基础信息数据")
    CourseBaseDTO modifyCourseById(CourseBaseVO vo );

    @ApiOperation(("根据id删除课程基础信息数据"))
    void removeCourseBaseById(Long courseBaseId);

    @ApiOperation("提交审核")
    @ApiImplicitParam(name = "courseBaseId",value = "课程基础信息id值",required = true,dataType = "Long",paramType = "path")
    void commitCourseById(Long courseBaseId);

    @ApiOperation(value = "课程预览")
    Object previewCourse(Long courseId,Long companyId);

    @ApiOperation("教学机构发布课程")
    @ApiImplicitParam(name = "courseBaseId",value = "课程基础信息id值",required = true,dataType = "Long",paramType = "path")
    void publishCourse(Long courseBaseId);

}
